package com.dt.platform.domain.hr.meta;

import com.github.foxnic.api.bean.BeanProperty;
import com.dt.platform.domain.hr.LearnRelease;
import java.util.Date;
import org.github.foxnic.web.domain.hrm.Organization;
import java.util.List;
import org.github.foxnic.web.domain.hrm.Employee;
import com.dt.platform.domain.hr.Learn;
import javax.persistence.Transient;



/**
 * @author 金杰 , maillank@qq.com
 * @since 2024-09-29 14:31:18
 * @sign BC4A34902AE55B50DB4F79E7EBE25454
 * 此文件由工具自动生成，请勿修改。若表结构或配置发生变动，请使用工具重新生成。
*/

public class LearnReleaseMeta {
	
	/**
	 * 主键 , 类型: java.lang.String
	 */
	public static final String ID="id";
	
	/**
	 * 主键 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> ID_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,ID, java.lang.String.class, "主键", "主键", java.lang.String.class, null);
	
	/**
	 * 名称 , 类型: java.lang.String
	 */
	public static final String LEARN_ID="learnId";
	
	/**
	 * 名称 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> LEARN_ID_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,LEARN_ID, java.lang.String.class, "名称", "名称", java.lang.String.class, null);
	
	/**
	 * 编号 , 类型: java.lang.String
	 */
	public static final String CODE="code";
	
	/**
	 * 编号 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> CODE_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,CODE, java.lang.String.class, "编号", "编号", java.lang.String.class, null);
	
	/**
	 * 启用状态 , 类型: java.lang.String
	 */
	public static final String STATUS="status";
	
	/**
	 * 启用状态 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> STATUS_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,STATUS, java.lang.String.class, "启用状态", "启用状态", java.lang.String.class, null);
	
	/**
	 * 下发状态 , 类型: java.lang.String
	 */
	public static final String RELEASE_STATUS="releaseStatus";
	
	/**
	 * 下发状态 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> RELEASE_STATUS_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,RELEASE_STATUS, java.lang.String.class, "下发状态", "下发状态", java.lang.String.class, null);
	
	/**
	 * 开始时间 , 类型: java.util.Date
	 */
	public static final String SDATE="sdate";
	
	/**
	 * 开始时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.util.Date> SDATE_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,SDATE, java.util.Date.class, "开始时间", "开始时间", java.util.Date.class, null);
	
	/**
	 * 结束时间 , 类型: java.util.Date
	 */
	public static final String EDATE="edate";
	
	/**
	 * 结束时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.util.Date> EDATE_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,EDATE, java.util.Date.class, "结束时间", "结束时间", java.util.Date.class, null);
	
	/**
	 * 学习用时 , 类型: java.lang.Integer
	 */
	public static final String COST="cost";
	
	/**
	 * 学习用时 , 类型: java.lang.Integer
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.Integer> COST_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,COST, java.lang.Integer.class, "学习用时", "学习用时", java.lang.Integer.class, null);
	
	/**
	 * 是否全员 , 类型: java.lang.String
	 */
	public static final String IF_ALL_USER="ifAllUser";
	
	/**
	 * 是否全员 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> IF_ALL_USER_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,IF_ALL_USER, java.lang.String.class, "是否全员", "是否全员", java.lang.String.class, null);
	
	/**
	 * 选择部门 , 类型: java.lang.String
	 */
	public static final String SEL_ORG="selOrg";
	
	/**
	 * 选择部门 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> SEL_ORG_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,SEL_ORG, java.lang.String.class, "选择部门", "选择部门", java.lang.String.class, null);
	
	/**
	 * 下发时间 , 类型: java.util.Date
	 */
	public static final String RCD_TIME="rcdTime";
	
	/**
	 * 下发时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.util.Date> RCD_TIME_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,RCD_TIME, java.util.Date.class, "下发时间", "下发时间", java.util.Date.class, null);
	
	/**
	 * 创建人ID , 类型: java.lang.String
	 */
	public static final String CREATE_BY="createBy";
	
	/**
	 * 创建人ID , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> CREATE_BY_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,CREATE_BY, java.lang.String.class, "创建人ID", "创建人ID", java.lang.String.class, null);
	
	/**
	 * 创建时间 , 类型: java.util.Date
	 */
	public static final String CREATE_TIME="createTime";
	
	/**
	 * 创建时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.util.Date> CREATE_TIME_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,CREATE_TIME, java.util.Date.class, "创建时间", "创建时间", java.util.Date.class, null);
	
	/**
	 * 修改人ID , 类型: java.lang.String
	 */
	public static final String UPDATE_BY="updateBy";
	
	/**
	 * 修改人ID , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> UPDATE_BY_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,UPDATE_BY, java.lang.String.class, "修改人ID", "修改人ID", java.lang.String.class, null);
	
	/**
	 * 修改时间 , 类型: java.util.Date
	 */
	public static final String UPDATE_TIME="updateTime";
	
	/**
	 * 修改时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.util.Date> UPDATE_TIME_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,UPDATE_TIME, java.util.Date.class, "修改时间", "修改时间", java.util.Date.class, null);
	
	/**
	 * 是否已删除 , 类型: java.lang.Integer
	 */
	public static final String DELETED="deleted";
	
	/**
	 * 是否已删除 , 类型: java.lang.Integer
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.Integer> DELETED_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,DELETED, java.lang.Integer.class, "是否已删除", "是否已删除", java.lang.Integer.class, null);
	
	/**
	 * 删除人ID , 类型: java.lang.String
	 */
	public static final String DELETE_BY="deleteBy";
	
	/**
	 * 删除人ID , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> DELETE_BY_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,DELETE_BY, java.lang.String.class, "删除人ID", "删除人ID", java.lang.String.class, null);
	
	/**
	 * 删除时间 , 类型: java.util.Date
	 */
	public static final String DELETE_TIME="deleteTime";
	
	/**
	 * 删除时间 , 类型: java.util.Date
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.util.Date> DELETE_TIME_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,DELETE_TIME, java.util.Date.class, "删除时间", "删除时间", java.util.Date.class, null);
	
	/**
	 * version , 类型: java.lang.Integer
	 */
	public static final String VERSION="version";
	
	/**
	 * version , 类型: java.lang.Integer
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.Integer> VERSION_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,VERSION, java.lang.Integer.class, "version", "version", java.lang.Integer.class, null);
	
	/**
	 * 租户 , 类型: java.lang.String
	 */
	public static final String TENANT_ID="tenantId";
	
	/**
	 * 租户 , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> TENANT_ID_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,TENANT_ID, java.lang.String.class, "租户", "租户", java.lang.String.class, null);
	
	/**
	 * 所属公司 , 集合类型: LIST , 类型: org.github.foxnic.web.domain.hrm.Organization
	 */
	public static final String SELECT_ORG="selectOrg";
	
	/**
	 * 所属公司 , 集合类型: LIST , 类型: org.github.foxnic.web.domain.hrm.Organization
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,org.github.foxnic.web.domain.hrm.Organization> SELECT_ORG_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,SELECT_ORG, java.util.List.class, "所属公司", "所属公司", org.github.foxnic.web.domain.hrm.Organization.class, null);
	
	/**
	 * 使用公司/部门 , 集合类型: LIST , 类型: java.lang.String
	 */
	public static final String SELECT_ORG_IDS="selectOrgIds";
	
	/**
	 * 使用公司/部门 , 集合类型: LIST , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> SELECT_ORG_IDS_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,SELECT_ORG_IDS, java.util.List.class, "使用公司/部门", "使用公司/部门", java.lang.String.class, null);
	
	/**
	 * 选择人员 , 集合类型: LIST , 类型: org.github.foxnic.web.domain.hrm.Employee
	 */
	public static final String SELECT_USER="selectUser";
	
	/**
	 * 选择人员 , 集合类型: LIST , 类型: org.github.foxnic.web.domain.hrm.Employee
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,org.github.foxnic.web.domain.hrm.Employee> SELECT_USER_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,SELECT_USER, java.util.List.class, "选择人员", "选择人员", org.github.foxnic.web.domain.hrm.Employee.class, null);
	
	/**
	 * 选择人员 , 集合类型: LIST , 类型: java.lang.String
	 */
	public static final String SELECT_USER_IDS="selectUserIds";
	
	/**
	 * 选择人员 , 集合类型: LIST , 类型: java.lang.String
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,java.lang.String> SELECT_USER_IDS_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,SELECT_USER_IDS, java.util.List.class, "选择人员", "选择人员", java.lang.String.class, null);
	
	/**
	 * learn , 类型: com.dt.platform.domain.hr.Learn
	 */
	public static final String LEARN="learn";
	
	/**
	 * learn , 类型: com.dt.platform.domain.hr.Learn
	 */
	public static final BeanProperty<com.dt.platform.domain.hr.LearnRelease,com.dt.platform.domain.hr.Learn> LEARN_PROP = new BeanProperty(com.dt.platform.domain.hr.LearnRelease.class ,LEARN, com.dt.platform.domain.hr.Learn.class, "learn", "learn", com.dt.platform.domain.hr.Learn.class, null);
	
	/**
	 * 全部属性清单
	 */
	public static final String[] $PROPS={ ID , LEARN_ID , CODE , STATUS , RELEASE_STATUS , SDATE , EDATE , COST , IF_ALL_USER , SEL_ORG , RCD_TIME , CREATE_BY , CREATE_TIME , UPDATE_BY , UPDATE_TIME , DELETED , DELETE_BY , DELETE_TIME , VERSION , TENANT_ID , SELECT_ORG , SELECT_ORG_IDS , SELECT_USER , SELECT_USER_IDS , LEARN };
	
	/**
	 * 代理类
	 */
	public static class $$proxy$$ extends com.dt.platform.domain.hr.LearnRelease {

		private static final long serialVersionUID = 1L;

		
		/**
		 * 设置 主键
		 * @param id 主键
		 * @return 当前对象
		*/
		public LearnRelease setId(String id) {
			super.change(ID,super.getId(),id);
			super.setId(id);
			return this;
		}
		
		/**
		 * 设置 名称
		 * @param learnId 名称
		 * @return 当前对象
		*/
		public LearnRelease setLearnId(String learnId) {
			super.change(LEARN_ID,super.getLearnId(),learnId);
			super.setLearnId(learnId);
			return this;
		}
		
		/**
		 * 设置 编号
		 * @param code 编号
		 * @return 当前对象
		*/
		public LearnRelease setCode(String code) {
			super.change(CODE,super.getCode(),code);
			super.setCode(code);
			return this;
		}
		
		/**
		 * 设置 启用状态
		 * @param status 启用状态
		 * @return 当前对象
		*/
		public LearnRelease setStatus(String status) {
			super.change(STATUS,super.getStatus(),status);
			super.setStatus(status);
			return this;
		}
		
		/**
		 * 设置 下发状态
		 * @param releaseStatus 下发状态
		 * @return 当前对象
		*/
		public LearnRelease setReleaseStatus(String releaseStatus) {
			super.change(RELEASE_STATUS,super.getReleaseStatus(),releaseStatus);
			super.setReleaseStatus(releaseStatus);
			return this;
		}
		
		/**
		 * 设置 开始时间
		 * @param sdate 开始时间
		 * @return 当前对象
		*/
		public LearnRelease setSdate(Date sdate) {
			super.change(SDATE,super.getSdate(),sdate);
			super.setSdate(sdate);
			return this;
		}
		
		/**
		 * 设置 结束时间
		 * @param edate 结束时间
		 * @return 当前对象
		*/
		public LearnRelease setEdate(Date edate) {
			super.change(EDATE,super.getEdate(),edate);
			super.setEdate(edate);
			return this;
		}
		
		/**
		 * 设置 学习用时
		 * @param cost 学习用时
		 * @return 当前对象
		*/
		public LearnRelease setCost(Integer cost) {
			super.change(COST,super.getCost(),cost);
			super.setCost(cost);
			return this;
		}
		
		/**
		 * 设置 是否全员
		 * @param ifAllUser 是否全员
		 * @return 当前对象
		*/
		public LearnRelease setIfAllUser(String ifAllUser) {
			super.change(IF_ALL_USER,super.getIfAllUser(),ifAllUser);
			super.setIfAllUser(ifAllUser);
			return this;
		}
		
		/**
		 * 设置 选择部门
		 * @param selOrg 选择部门
		 * @return 当前对象
		*/
		public LearnRelease setSelOrg(String selOrg) {
			super.change(SEL_ORG,super.getSelOrg(),selOrg);
			super.setSelOrg(selOrg);
			return this;
		}
		
		/**
		 * 设置 下发时间
		 * @param rcdTime 下发时间
		 * @return 当前对象
		*/
		public LearnRelease setRcdTime(Date rcdTime) {
			super.change(RCD_TIME,super.getRcdTime(),rcdTime);
			super.setRcdTime(rcdTime);
			return this;
		}
		
		/**
		 * 设置 创建人ID
		 * @param createBy 创建人ID
		 * @return 当前对象
		*/
		public LearnRelease setCreateBy(String createBy) {
			super.change(CREATE_BY,super.getCreateBy(),createBy);
			super.setCreateBy(createBy);
			return this;
		}
		
		/**
		 * 设置 创建时间
		 * @param createTime 创建时间
		 * @return 当前对象
		*/
		public LearnRelease setCreateTime(Date createTime) {
			super.change(CREATE_TIME,super.getCreateTime(),createTime);
			super.setCreateTime(createTime);
			return this;
		}
		
		/**
		 * 设置 修改人ID
		 * @param updateBy 修改人ID
		 * @return 当前对象
		*/
		public LearnRelease setUpdateBy(String updateBy) {
			super.change(UPDATE_BY,super.getUpdateBy(),updateBy);
			super.setUpdateBy(updateBy);
			return this;
		}
		
		/**
		 * 设置 修改时间
		 * @param updateTime 修改时间
		 * @return 当前对象
		*/
		public LearnRelease setUpdateTime(Date updateTime) {
			super.change(UPDATE_TIME,super.getUpdateTime(),updateTime);
			super.setUpdateTime(updateTime);
			return this;
		}
		
		/**
		 * 设置 是否已删除
		 * @param deleted 是否已删除
		 * @return 当前对象
		*/
		public LearnRelease setDeleted(Integer deleted) {
			super.change(DELETED,super.getDeleted(),deleted);
			super.setDeleted(deleted);
			return this;
		}
		
		/**
		 * 设置 删除人ID
		 * @param deleteBy 删除人ID
		 * @return 当前对象
		*/
		public LearnRelease setDeleteBy(String deleteBy) {
			super.change(DELETE_BY,super.getDeleteBy(),deleteBy);
			super.setDeleteBy(deleteBy);
			return this;
		}
		
		/**
		 * 设置 删除时间
		 * @param deleteTime 删除时间
		 * @return 当前对象
		*/
		public LearnRelease setDeleteTime(Date deleteTime) {
			super.change(DELETE_TIME,super.getDeleteTime(),deleteTime);
			super.setDeleteTime(deleteTime);
			return this;
		}
		
		/**
		 * 设置 version
		 * @param version version
		 * @return 当前对象
		*/
		public LearnRelease setVersion(Integer version) {
			super.change(VERSION,super.getVersion(),version);
			super.setVersion(version);
			return this;
		}
		
		/**
		 * 设置 租户
		 * @param tenantId 租户
		 * @return 当前对象
		*/
		public LearnRelease setTenantId(String tenantId) {
			super.change(TENANT_ID,super.getTenantId(),tenantId);
			super.setTenantId(tenantId);
			return this;
		}
		
		/**
		 * 设置 所属公司
		 * @param selectOrg 所属公司
		 * @return 当前对象
		*/
		public LearnRelease setSelectOrg(List<Organization> selectOrg) {
			super.change(SELECT_ORG,super.getSelectOrg(),selectOrg);
			super.setSelectOrg(selectOrg);
			return this;
		}
		
		/**
		 * 设置 使用公司/部门
		 * @param selectOrgIds 使用公司/部门
		 * @return 当前对象
		*/
		public LearnRelease setSelectOrgIds(List<String> selectOrgIds) {
			super.change(SELECT_ORG_IDS,super.getSelectOrgIds(),selectOrgIds);
			super.setSelectOrgIds(selectOrgIds);
			return this;
		}
		
		/**
		 * 设置 选择人员
		 * @param selectUser 选择人员
		 * @return 当前对象
		*/
		public LearnRelease setSelectUser(List<Employee> selectUser) {
			super.change(SELECT_USER,super.getSelectUser(),selectUser);
			super.setSelectUser(selectUser);
			return this;
		}
		
		/**
		 * 设置 选择人员
		 * @param selectUserIds 选择人员
		 * @return 当前对象
		*/
		public LearnRelease setSelectUserIds(List<String> selectUserIds) {
			super.change(SELECT_USER_IDS,super.getSelectUserIds(),selectUserIds);
			super.setSelectUserIds(selectUserIds);
			return this;
		}
		
		/**
		 * 设置 learn
		 * @param learn learn
		 * @return 当前对象
		*/
		public LearnRelease setLearn(Learn learn) {
			super.change(LEARN,super.getLearn(),learn);
			super.setLearn(learn);
			return this;
		}

		/**
		 * 克隆当前对象
		*/
		@Transient
		public LearnRelease clone() {
			return duplicate(true);
		}

		/**
		 * 复制当前对象
		 * @param all 是否复制全部属性，当 false 时，仅复制来自数据表的属性
		*/
		@Transient
		public LearnRelease duplicate(boolean all) {
			$$proxy$$ inst=new $$proxy$$();
			inst.setSdate(this.getSdate());
			inst.setCode(this.getCode());
			inst.setCost(this.getCost());
			inst.setUpdateTime(this.getUpdateTime());
			inst.setIfAllUser(this.getIfAllUser());
			inst.setEdate(this.getEdate());
			inst.setVersion(this.getVersion());
			inst.setCreateBy(this.getCreateBy());
			inst.setDeleted(this.getDeleted());
			inst.setSelOrg(this.getSelOrg());
			inst.setCreateTime(this.getCreateTime());
			inst.setUpdateBy(this.getUpdateBy());
			inst.setDeleteTime(this.getDeleteTime());
			inst.setReleaseStatus(this.getReleaseStatus());
			inst.setTenantId(this.getTenantId());
			inst.setLearnId(this.getLearnId());
			inst.setDeleteBy(this.getDeleteBy());
			inst.setId(this.getId());
			inst.setStatus(this.getStatus());
			inst.setRcdTime(this.getRcdTime());
			if(all) {
				inst.setSelectOrg(this.getSelectOrg());
				inst.setLearn(this.getLearn());
				inst.setSelectUserIds(this.getSelectUserIds());
				inst.setSelectUser(this.getSelectUser());
				inst.setSelectOrgIds(this.getSelectOrgIds());
			}
			inst.clearModifies();
			return inst;
		}

	}
}